﻿import pygame
from pygame.locals import *
from SimpleButton import *

class MainMenu:
	def __init__(self, game_app, py_screen):
		print "menu create"
		self.screen = py_screen
		self.ws = game_app
		self.ws.SetArrowCursor()
		self.windows_bgcolor = (0,0,0)#(127,63,63)
		self.mouse_pos = (0,0)
		
		self.menu_caption = self.ws.test_font.render("This is MainMenu", False, (255,255,255))

		#задний фон
		self.bg_image = pygame.image.load("data/graphics/bgs/bg_1.png").convert()
		
		#################################################################################
		
		#массив изображении к кнопке play
		self.play_btn_imgs = []
		#забиваем в массив изображения
		self.play_btn_imgs.append(pygame.image.load("data/graphics/buttons/play_btn_up.png").convert_alpha())
		self.play_btn_imgs.append(pygame.image.load("data/graphics/buttons/play_btn_over.png").convert_alpha())
		self.play_btn_imgs.append(pygame.image.load("data/graphics/buttons/play_btn_down.png").convert_alpha())
		#прямоугольная область к кнопке
		self.play_btn_rect = pygame.Rect(512,336, self.play_btn_imgs[0].get_width(), self.play_btn_imgs[0].get_height());
		#кнопка play
		self.play_btn = SimpleButton(self.play_btn_rect, self.play_btn_imgs, self.screen)
		
		#################################################################################
		
		#массив изображении к кнопке about
		self.about_btn_imgs = []
		#забиваем в массив изображения
		self.about_btn_imgs.append(pygame.image.load("data/graphics/buttons/about_btn_up.png").convert_alpha())
		self.about_btn_imgs.append(pygame.image.load("data/graphics/buttons/about_btn_over.png").convert_alpha())
		self.about_btn_imgs.append(pygame.image.load("data/graphics/buttons/about_btn_down.png").convert_alpha())
		#прямоугольная область к кнопке
		self.about_btn_rect = pygame.Rect(512,378, self.about_btn_imgs[0].get_width(), self.about_btn_imgs[0].get_height());
		#кнопка play
		self.about_btn = SimpleButton(self.about_btn_rect, self.about_btn_imgs, self.screen)
		
		#################################################################################
		
		#массив изображении к кнопке exit
		self.exit_btn_imgs = []
		#забиваем в массив изображения
		self.exit_btn_imgs.append(pygame.image.load("data/graphics/buttons/exit_btn_up.png").convert_alpha())
		self.exit_btn_imgs.append(pygame.image.load("data/graphics/buttons/exit_btn_over.png").convert_alpha())
		self.exit_btn_imgs.append(pygame.image.load("data/graphics/buttons/exit_btn_down.png").convert_alpha())
		#прямоугольная область к кнопке
		self.exit_btn_rect = pygame.Rect(512,420, self.exit_btn_imgs[0].get_width(), self.exit_btn_imgs[0].get_height());
		#кнопка play
		self.exit_btn = SimpleButton(self.exit_btn_rect, self.exit_btn_imgs, self.screen)
		
		#################################################################################
		
		#массив кнопок
		self.buttons_array = [self.play_btn, self.about_btn, self.exit_btn]
		
		
	def Update(self):
		for event in pygame.event.get():
			if event.type == QUIT:
				self.ws.mainLoop = False
			if event.type == MOUSEBUTTONUP:
				m_pos = event.pos
				
				for btn in self.buttons_array:
					btn.Up()
				
				if self.play_btn_rect.collidepoint(m_pos):
					self.ws.SetCurrentScene(4)
				if self.about_btn_rect.collidepoint(m_pos):
					self.ws.SetCurrentScene(3)
				if self.exit_btn_rect.collidepoint(m_pos):
					self.ws.mainLoop = False
			if event.type == MOUSEBUTTONDOWN:
				m_pos = event.pos
				
				for btn in self.buttons_array:
					btn.TestDown(m_pos)
		
		#получем координаты курсора
		self.mouse_pos = pygame.mouse.get_pos()
		
		#рисуем задний фон сцены
		self.screen.blit(self.bg_image,(0,0))
		
		#рисуем курсор мыши
		pygame.draw.circle(self.screen, (63,63,127), self.mouse_pos, 20)
		
		#рисуем заголовок сцены
		self.screen.blit(self.menu_caption, (200,50))
		
		#прогоняем цикл по массиву кнопок
		for btn in self.buttons_array:
			#делигируем событие "навели"
			btn.Over(self.mouse_pos)
			#отрисовывае кнопку
			btn.Draw()
		
		pygame.display.update()
		#Berlin Sans FB
		#Garamond